--[[
  1. key - 限流接口的key

  1. count - 【时间窗口最大流量限制数量】
  2. time -  【窗口时间范围】
]] --
local key = KEYS[1]
local maxCount = tonumber(ARGV[1])
local time = tonumber(ARGV[2])

-- 获取当前窗口的大小
local currentCount = redis.call('get', key)
-- 若超出限制，则直接返回当前数量
if currentCount and tonumber(currentCount) > maxCount then
    return tonumber(currentCount)
end
-- 若未超出限制，数量+1后返回
currentCount = redis.call('incr', key)
if tonumber(currentCount) == 1 then
    -- 若是首次请求，则将【窗口时间范围】设置为key的有效期
    redis.call('expire', key, time)
end
return tonumber(currentCount)
